package cn.fxzhang.leetcode.no00;

/**
 * 7. 整数反转
 * 给你一个 32 位的有符号整数 x ，返回将 x 中的数字部分反转后的结果。
 * 如果反转后整数超过 32 位的有符号整数的范围 [−231,  231 − 1] ，就返回 0。
 * 假设环境不允许存储 64 位整数（有符号或无符号）。
 *
 * 类型：数值处理
 * 题解：根据有序性，可以用枚举或者二分
 * 时间复杂度：O(N), N是数组中的元素数量
 * 空间复杂度：O(N), N是数组中的元素数量。主要为哈希表的开销
 *
 * 提交记录(1/2)：
 * 执行用时: 0 ms, 击败了100.00%
 * 内存消耗: 35.6 MB, 击败了44.61%
 * 通过次数641,491提交次数1,832,386
 * @author 张晓帆
 * @date 2021/4/6
 */
public class P0007_Reverse_Integer {

    public int reverse(int x) {
        int res = 0;
        while (x!=0){
            if (res*10/10 != res){
                return 0;
            }
            res = res*10 + x%10;
            x = x/10;
        }
        return res;
    }
}
